This invention generally relates to data processing systems and more specifically to the interconnection of data processing systems in a distributed data processing network.
There are two basic terms that should be defined: namely, "file" and "distributed data processing system". A "file" is an organized collection of information directed to some purpose. For example, a file may comprise a set of program instructions for use by a data processing system or a block of data to be processed in response to instructions stored in some other file. In the context of this application a file is specified by a unique identifier. Typically, this identifier is a common name which the person forming the file assigns to it.
A "distributed data processing network" includes interconnected data processing systems. Such a network is characterized in that each data processing system operates independently of the other systems and yet has the capacity for transferring files with any other system in the network.
Data processing systems in the past have been interconnected to operate as distributed data processing networks. In the simplest network configuration, two data processing systems are interconnected by means of a linking circuit. This type of interconnection enables various devices to connect to each data processing system and operate independently with that system while the link transfers files between the systems. Thus, the files are stored redundantly. Such distributed data processing networks are called replicated networks. They are relatively simple to implement when two data processing systems are interconnected. However, if one attempts to construct a replicated network with three or more systems, the interconnection and the required control programming for operating the network becomes extraordinarily complex. Thus, replicated networks tend, from a practical standpoint, to be limited to networks that include only two independent data processing systems.
Another approach to interconnection of data processing systems in distributed data processing networks involves the interconnection of two or more data processing systems in a master-slave relationship. In one specific implementation, one data processing system performs solely as a master system. All the other data processing systems connect to the master system as slave systems. The master system controls any communications between the individual slave systems.
When the master system is a dedicated data processing system, however, much of the redundancy in the replicated system is lost. As will be apparent, if the master system malfunctions and ceases to operate, the entire network becomes inoperative. In another master-slave implementation, all the data processing systems are in parallel, but one system is additionally programmed to operate as the master system. This reduces the susceptibility to malfunctions because the master program may be transferred to any other data processing system in the network. However, the combined load on a data processing system additionally operating as the master system can overload the master system. Any such overloading that affects the operation of the master system slows the overall efficiency of the entire network.
In large and complex distributed data processing networks, individual data processing systems share all of the main random access memory or a portion of that memory. More specifically, complex switching circuits interconnect various memory modules that constitute the main memory, multiple central processing units and multiple input/output control units. These networks also require extensive control programming and require the arbitration of multiple concurrent requests for access to a particular memory from both the central processor units and the input/output units in order to avoid "race" problems in accessing the common portion of the main memory. This adds to the expense of the distributed data processing network.
As the control programs become more complex in all the foregoing approaches, they require more time to process. However, these control programs perform overhead operations that require time that therefor can not be allocated to processing programs that produce useful output. Increasing the time for processing these control programs therefore makes the data processing systems run significantly slower; that is, the processing time for programs in the distributed data processing network is greater than the time required if a single data processing system were to process the same program on a dedicated basis.
Therefore, it is an object of this invention to provide apparatus for interconnecting multiple data processing systems in a distributed data processing network.
Another object of this invention is to provide apparatus for interconnecting multiple data processing systems that comprises electronic circuitry that affords great flexibility in the preparation of control programs.
Still another object of this invention is to provide apparatus for interconnecting multiple data processing systems that are simple to implement and to utilize.
Yet another object of this invention is to provide apparatus for interconnecting multiple data processing systems that minimizes processing time for control programs.